<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>3.回调函数形式的ref执行次数的问题</title>
</head>

<body>
    <!-- 准备好一个“容器” -->
    <div id="test"></div>
    <!-- 引入react核心库 -->
    <script type="text/javascript" src="../js/react.development.js"></script>
    <!-- 引入react-dom，用于支持react操作DOM -->
    <script type="text/javascript" src="../js/react-dom.development.js"></script>
    <!-- 引入babel，用于将jsx转为js -->
    <script type="text/javascript" src="../js/babel.min.js"></script>
    <script type="text/babel"> /* 此处一定要写babel */
    /****************
     * react使用内联css样式: 就是直接在元素标签的style属性中写css样式，但是这里有三个注意点:
        1. style等号后面必须接双大括号也就是 style={{ xx: xx }} 这样
        2. css的属性必须写成驼峰型，不能有中横线，比如marginRight, 而不能说margin-right
        3. style中属性的键值必须带引号： style={{ fontSize: "12px" }} ，这里的12px必须有引号
     * 
     * 
     * ****************/ 
    //1.创建组件
    class Demo extends React.Component{
        state = {
            isHot:true
        }
        //展示左侧输入框中的数据
        showData = ()=>{
            //refs写法
            const {input1} = this
            alert(input1.value)
        }
        changeWeather = ()=>{
            const {isHot} =this.state;
            this.setState({isHot :!isHot })
        }
        //
        saveInput=(currentNode)=>{
          this.input1 = currentNode;
          console.log("first",currentNode)
        }
       render(){
        const {isHot} =this.state;
            return(
                <div>
                    {/*<input ref={(currentNode)=>{this.input1 = currentNode; console.log("first",currentNode)}} type="text" placeholder="点击按钮提示数据"/>&nbsp;*/}
                    <input ref={this.saveInput} type="text" placeholder="点击按钮提示数据"/>
                    <button onClick={this.showData}>点击按钮提示左侧数据</button>
                    <h2 onClick={this.changeWeather}>今天天气很{isHot?'炎热':'凉爽'}</h2>
                </div>
            )
       }
     }
    //2.渲染虚拟DOM到页面
    ReactDOM.render(<Demo/>,document.getElementById('test'))
    </script>
</body>

</html>